public class Liste { public Object data; public Liste next; public Liste(Object data) { this.data = data; // ^ ^- data-Variable aus der Methode // |- data-Property aus dem Objekt } public void append(Liste l) { Liste helper; // "this" ist das Objekt von dem die Methode aufgerufen wird // im Beispiel unten "testliste" for (helper = this; helper.next != null; helper=helper.next) {} // Am Ende der for-Schleife ist helper das letzte Objekt der Liste // helper.next ist in dem Moment null helper.next = l; } // zweite (überladene / overloaded) append()-Methode zur Bequemlichkeit public void append(Object o) { append( new Liste( o ) ); // ^ ^- Übergebenes Argument // |- Aufruf der anderen append()-Methode mit Argument "Liste" } public String toString() { // toString gibt es "stillschweigend" in jeder Klasse // will man, dass es eine sinnvolle Ausgabe erzeugt // kann man es einfach mit einer eigenen Deklaration // "überlagern" / "Override" Liste helper; String r = ""; for (helper = this; helper != null; helper = helper.next) { r += "" + helper.data; if ( helper.next != null ) { r += ", "; } } return r; } // kann auch null zurück geben! public Liste get( int idx ) { Liste helper = this; while (idx > 0 && helper != null ) { helper = helper.next; idx--; } return helper; } public static void main(String[] args) { System.out.println("== Klasse: Liste =="); Liste testliste, helper; testliste = new Liste("Null"); testliste.append("Eins"); testliste.append("Zwei"); testliste.append("Drei"); testliste.append("Vier"); testliste.append("Fünf"); testliste.append("Sechs"); testliste.append("Sieben"); testliste.append("Acht"); testliste.append("Neun"); System.out.println(testliste + "\n"); System.out.println("testliste.get(0): " + testliste.get(0).data ); System.out.println("testliste.get(1): " + testliste.get(1).data ); System.out.println("testliste.get(2): " + testliste.get(2).data ); System.out.println("testliste.get(3): " + testliste.get(3).data ); System.out.println("testliste.next.next.get(1): " + testliste.next.next.get(1).data ); helper = testliste.get(4); System.out.println("helper: " + helper); System.out.println("helper.data: " + helper.data); // System.out.println("testliste.get(20): " + testliste.get(20).data ); } }